

cc.Class({
    extends: cc.Component,
    properties: {
        startPos: cc.v2(0,0),
    },
    move(e) {
        // 触摸点列表
      const touches = e.getTouches();
      const touchPos = touches[0].getLocation();
      const touchStartPos = touches[0].getStartLocation();
      const deltaPos = cc.v2(touchPos.x - touchStartPos.x, touchPos.y-touchStartPos.y);
      // 设置节点坐标
      this.node.setPosition(this.startPos.add(deltaPos));
    },
    // LIFE-CYCLE CALLBACKS:

    onLoad () {
        // 这里为了避免鼠标拖曳出现偏差，采用了整体偏移量方式。
        // 在触摸开始的时候记录了节点起始位置即“this.startPos”
        this.node.on(cc.Node.EventType.TOUCH_START, function (e) {
            this.startPos = this.node.position;
            this.node.on(cc.Node.EventType.TOUCH_MOVE, this.move, this);
            // stop propagation
            e.stopPropagation();
        }, this, false);

        this.node.on(cc.Node.EventType.TOUCH_END, function (e) {
            // 为了避免特殊情况的错误发生，在触摸取消时做了类似触摸结束的操作。
            this.node.off(cc.Node.EventType.TOUCH_MOVE, this.move, this);
        },this);

        this.node.on(cc.Node.EventType.TOUCH_CANCEL, function (e) {
            // 为了避免特殊情况的错误发生，在触摸取消时做了类似触摸结束的操作。
            this.node.off(cc.Node.EventType.TOUCH_MOVE, this.move, this);
        },this);
    },

    start () {

    },

    // update (dt) {},
});
